package com.zh.blog.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zh.blog.dto.UserAreaDto;
import com.zh.blog.dto.UserBackDto;
import com.zh.blog.dto.UserInfoDto;
import com.zh.blog.model.UserAuth;
import com.zh.blog.vo.*;

import java.util.List;

/**
 * 用户账号服务类
 * @author ZhengHao
 * Created At 2022/8/2.
 **/
public interface UserAuthService extends IService<UserAuth> {

    /**
     * 获取用户区域分布
     * @param conditionVO 条件
     * @return 用户区域分布
     */
    List<UserAreaDto> listUsersArea(ConditionVO conditionVO);

    /**
     * 查询后台用户列表
     * @param conditionVO 条件
     * @return 用户列表
     */
    PageResult<UserBackDto> listUserBackDto(ConditionVO conditionVO);

    /**
     * 修改管理员密码
     * @param passwordVO 密码对象
     */
    void updateAdminPassword(PasswordVO passwordVO);

    /**
     * 发送邮箱验证码
     * @param username 用户名
     */
    void sendCode(String username);

    /**
     * 用户注册
     * @param userVO
     */
    void register(UserVO userVO);

    /**
     * 修改密码
     * @param user 用户信息
     */
    void updatePassword(UserVO user);

    /**
     * 微博登录
     * @param weiboLoginVO 微博登录信息
     * @return 用户登录信息
     */
    UserInfoDto weiboLogin(WeiboLoginVO weiboLoginVO);

    /**
     * QQ登录
     * @param qqLoginVO QQ登录信息
     * @return 用户登录信息
     */
    UserInfoDto qqLogin(QQLoginVO qqLoginVO);
}